package tech.aistar.corejava.day03.method;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:带有返回类型的方法
 * @date 2019/7/17 0017
 */
public class MethodTest02 {
    public static void main(String[] args) {
        //当一个方法存在返回类型的时候,那么在调用的时候,需要使用变量去接
        //回忆:变量的赋值的方式 - 可以通过方法来进行赋值

        //创建一个对象
        MethodTest02 m = new MethodTest02();
        //通过对象进行调用

        //将方法调用完毕之后的结果赋值到了一个int类型的变量n中

        //此处的存放方法调用结果的类型一定是大于或者等于方法定义时的类型
        //通常是保持一致的
        int n = m.test01();
        System.out.println(n);

        //我们也是可以将方法调用之后的结果直接输出
        //不一定需要将它保存在变量
        System.out.println(m.test01());

        //同一个类中,静态方法是可以直接调用静态方法的
        //非静态方法中是可以直接调用静态方法的!
        //非静态方法中也是可以直接调用非静态方法的!
        String result = test02();
        System.out.println(result);
    }

    /**
     * 返回的类型可以是基本数据类型
     * 方法的返回类型是int
     */
    public int test01(){

        //当程序执行到return语句的时候,那么这个方法就会执行结束了
        //下方是不允许出现代码的.

        //作用 - 用来结束方法
        //   - 用来将方法执行之后的结果返回出去.
        //返回的结果的类型一定是小于或者等于方法定义时的类型
        //否则需要进行强制类型转换
        return 10;
        //return 'a';//ok

        //alt+enter
       // return (int) 123.45;
       // System.out.println("===");
    }

    public static String test02(){
        //System.out.println("test02...");
        return "success";
    }

    //--------------------------------------------------
    //--------------------------------------------------

    public int test03(){
        int n = 10;
        if(n<5){
            return 8;
        }
        //那么在方法的最终的出口处,一定会存在return语句,来将结果返回出去
        return 10;
    }

    public void test04(){
        //非静态方法中是不能够定义静态变量的
        //static int n = 10;
    }

}
